package main

import (
	"bytes"
	"fmt"
	"io"
)

//const debug = true
const debug = false

func main() {
	//var buf *bytes.Buffer
	var buf io.Writer
	if debug {
		buf = new(bytes.Buffer)
	}
	f(buf) //微秒的错误, buf的动态值是nil，但动态类型是*bytes.Buffer，所以buf!=nil是true，这里需要特别注意,buf类型改为bytes.Buffer即可避免这个错误
	if debug {
		fmt.Println(buf)
	}
}

func f(out io.Writer) {
	if out != nil {
		out.Write([]byte("done!\n"))
	}
}
